iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0

尺規作圖只能用一隻無尺度的直尺(用來畫通過兩點的線)和一隻圓規(用來畫圓和量取等長的線段),如此便可建立歐氏幾何的世界。

畫圓

  • 已知圓心和圓上一點
  • 已知圓心和另一圓
  • 已知圓心和半徑
  • 圓上三點

我們直接用範例來說明建構語法。

const circleC1 = board.create('circle', [pointA, pointB], { fillColor: 'MistyRose', strokeColor: 'OrangeRed' }) // pointA為圓心且經過pointB的圓
// 第二象限
const circleC2 = board.create('circle', [pointC, circleC1], { color: 'LightSeaGreen' }) // pointB為圓心且半徑等於circleC1的圓
const circleC3 = board.create('circle', [pointC, 8], { Color: 'Turquoise' }) // pointB為圓心且半徑等於8的圓

三角形的外接圓可直接用circumCircle元素來建構、內切圓則可用inCircle,它們都繼承自Circle類別。

// 第三象限
const pointD = board.create('point', [-17, -5])
const pointE = board.create('point', [-25, -23])
const pointF = board.create('point', [-5, -25])
const segmentDE = board.create('segment', [pointD, pointE])
const segmentFE = board.create('segment', [pointF, pointE])
const segmentDF = board.create('segment', [pointD, pointF])
const circleC4 = board.create('circumCircle', [pointD, pointE, pointF]) // 外接圓
const circleC5 = board.create('inCircle', [pointD, pointE, pointF]) //內切圓

circle元素有center這個屬性,可以存取,也可以設定它的樣式。

執行結果
image1

建構

JSXGraph一部份是依循尺規作圖的來建構點、線和圓的世界,尺規作圖可以平行、垂直和鏡射(或對稱)建構新的幾何元素。

平行(Parallel)

和平行相關的幾何元素建構

  • parallelPoint 給予三點ABC可以建構點D使得向量AB等於向量CD
  • arrowParallel 給予三點ABC可以建構向量CD使得向量AB等於向量CD
  • parallel 給予一直線L和一點P,可以建構通過點P且平行L的直線。

我們直接用範例來說明建構語法。

const pointG = board.create('point', [17, -5])
const pointH = board.create('point', [25, -23])
const pointI = board.create('point', [5, -7])

const lineGH = board.create('line', [pointG, pointH], {
  firstArrow: false,
  lastArrow: { type: 4, size: 15 },
  straightFirst: false,
  straightLast: false,
})
const pointJ = board.create('parallelpoint', [pointG, pointH, pointI], { color: 'red' })
const arrowIJ = board.create('arrowParallel', [pointG, pointH, pointI], {
  firstArrow: false,
  lastArrow: { type: 4, size: 15 },
})

垂直(Perpendicular)

和垂直相關的幾何元素建構

  • orthogonalProjection和perpendicularpoint 給予一直線L和一點P,建構點P在直線L上的投影點(垂足)。
  • perpendicular 給予一直線L和一點P,可建構通過點P且垂直L的直線。
  • perpendicularSegment 給予一直線L和一點P,建構點P和點P在直線L上的投影點(垂足)的連線段。

我們直接用範例來說明建構語法。

const pointK = board.create('point', [18, -23], { color: 'red' })
const pointL = board.create('perpendicularPoint', [lineGH, pointK])
const lineKL = board.create('perpendicular', [lineGH, pointK], { withLabel: false })
const pointM = board.create('point', [15, -10], { color: 'red' })
const segmentMN = board.create('perpendicularSegment', [lineGH, pointM], { withLabel: false })

鏡射(Mirror)

和鏡射及對稱相關的幾何元素建構。

  • midPoint 給予PQ兩點,可以建構PQ的中點。
  • mirrorPoint 給予PQ兩點,可以建構以Q為對稱中心,和P對稱的點。
  • reflection 給予一直線L和一幾何元素P,可以建構以Q為對稱軸,和P對稱的幾何元素。

我們直接用範例來說明建構語法。

const pointN = board.create('midPoint', [pointG, pointH], { color: 'red' })
const pointO = board.create('reflection', [pointM, lineGH])
const pointP = board.create('mirrorPoint', [pointM, pointN], { color: 'red' })
const segmentMK = board.create('segment', [pointM, pointK])
const segmentOQ = board.create('reflection', [segmentMK, lineGH], {
  straightFirst: false,
  straightLast: false
})

執行結果
image2

今日程式碼連結

https://replit.com/@yegc22/iThomeIronman2022Day5?v=1

今日小結

學會了平行、垂直和對稱來建構其它的幾何元素,可以讓我們更快速的完成幾何圖形的繪製。數學老師們最常做的工作便是出考卷,考卷裏面常常需有繪製一些圖形,JSXGraph學到現在,應該可以讓你完成大部分的圖形了。明天,我們將在畫版上加入標籤,按鈕…輸入元件,繼續加油!


上一篇
從點開始,連成線…
下一篇
Euler線和Button元素
系列文
30天數學老師作互動式教學網頁30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言